using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    /// <summary>
    /// 系统操作日志仓储接口
    /// </summary>
    public interface ISystemOperationLogRepository : IRepository<SystemOperationLog>
    {
        Task<IEnumerable<SystemOperationLog>> GetByUserIdAsync(Guid userId);
        Task<IEnumerable<SystemOperationLog>> GetByModuleAsync(string module);
        Task<IEnumerable<SystemOperationLog>> GetByOperationTypeAsync(string operationType);
        Task<IEnumerable<SystemOperationLog>> GetByDateRangeAsync(DateTime startDate, DateTime endDate);
        Task<IEnumerable<SystemOperationLog>> GetByIpAsync(string ip);
        Task<int> GetCountByUserIdAsync(Guid userId, DateTime startDate, DateTime endDate);
    }
}